package com.cskaoyan.javase._1extends._5protected._1two;

import com.cskaoyan.javase._1extends._5protected._0one.CurrentClazz;
import com.cskaoyan.javase._1extends._5protected._0one.SamePackageSonClazz;

/**
 * 不同包下的子类
 * 受保护的访问权限明确说，在不同包下的子类中，可用访问
 * 那访问的方式有几种呢？
 *      1.创建父类对象访问
 *          不能访问
 *      2.创建自身子类对象访问
 *          可以访问
 *      3.创建"兄弟姐妹"子类对象访问
 *          不能访问
 *
 *  以上,总结不同包下子类中受保护访问权限的访问情况:
 *      只能在子类中创建子类自身对象,然后访问子类从父类中继承过来的受保护成员
 *
 * @since 10:04
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class AnotherPackageSonClazz extends CurrentClazz {
    public static void main(String[] args) {
        // 1.创建父类对象访问
        CurrentClazz cc = new CurrentClazz();
        // 'num' has protected access in 'com.cskaoyan.javase._1extends._5protected._0one.CurrentClazz'
        // System.out.println(cc.num);

        // 2.创建自身子类对象访问
        AnotherPackageSonClazz ac = new AnotherPackageSonClazz();
        System.out.println(ac.num);

        // 3.创建"兄弟姐妹"子类对象访问
        SamePackageSonClazz sc = new SamePackageSonClazz();
        // System.out.println(sc.num);
    }
}
